package cn.stylefeng.guns.modular.hx.storage.mapper;

import cn.stylefeng.guns.modular.hx.storage.entity.HxStoragePut;
import cn.stylefeng.guns.modular.hx.storage.model.params.HxStoragePutDetailedParam;
import cn.stylefeng.guns.modular.hx.storage.model.params.HxStoragePutParam;
import cn.stylefeng.guns.modular.hx.storage.model.result.HxStoragePutDetailedResult;
import cn.stylefeng.guns.modular.hx.storage.model.result.HxStoragePutResult;
import cn.stylefeng.guns.modular.hx.storage.model.result.rukuPositionResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 入库单表 Mapper 接口
 * </p>
 *
 * @author zhucx
 * @since 2023-08-14
 */
public interface HxStoragePutMapper extends BaseMapper<HxStoragePut> {

    /**
     * 获取列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    List<HxStoragePutResult> customList(@Param("paramCondition") HxStoragePutParam paramCondition);

    /**
     * 获取map列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") HxStoragePutParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    Page<HxStoragePutResult> customPageList(@Param("page") Page page, @Param("paramCondition") HxStoragePutParam paramCondition
    		, @Param("condition") String condition,@Param("operateId")Long operateId);

    Page<HxStoragePutResult> findreturnPageBySpec(@Param("page") Page page, @Param("paramCondition") HxStoragePutParam paramCondition
    		, @Param("condition") String condition,@Param("operateId")Long operateId);

    /**
     * 获取分页map列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") HxStoragePutParam paramCondition);

	HxStoragePutResult findBySpec(@Param("paramCondition")HxStoragePutParam param);

	List<HxStoragePutResult> restfindstoragelist(@Param("paramCondition")HxStoragePutParam hxStoragePutParam);

	HxStoragePutResult restfindstorage(@Param("paramCondition")HxStoragePutParam hxStoragePutParam);
	// 入库质检信息
    Page<HxStoragePutResult> getQualityuser(@Param("page")Page pageContext,@Param("paramCondition") HxStoragePutParam hxStoragePutParam, @Param("condition") String condition);
    // 上架人员信息
    Page<HxStoragePutDetailedResult> shangjiauser(@Param("page")Page pageContext, @Param("paramCondition") HxStoragePutDetailedParam hxStoragePutDetailedParam, @Param("condition") String condition);

	List<HxStoragePutResult> restfindstoragereturnlist(@Param("paramCondition")HxStoragePutParam hxStoragePutParam);

    List<rukuPositionResult> findrukuposition(@Param("paramCondition")rukuPositionResult rukuPositionResult);

    List<HxStoragePutResult> findlistAllBySpec(@Param("paramCondition")HxStoragePutParam hxStoragePutParam, @Param("condition")String condition,@Param("operateId") Long operateId);

    HxStoragePutResult count(@Param("paramCondition")HxStoragePutParam hxStoragePutParam, @Param("condition")String condition,@Param("operateId") Long operateId);

    HxStoragePutResult count1(@Param("paramCondition")HxStoragePutParam hxStoragePutParam, @Param("condition")String condition,@Param("operateId") Long operateId);

    List<HxStoragePutResult> listAll1(HxStoragePutParam hxStoragePutParam, String condition, Long operateId);
}
